﻿using System.IO;
using Styx;
using Styx.Helpers;
using System.ComponentModel;
using DefaultValue = Styx.Helpers.DefaultValueAttribute;

namespace FireMage
{
    public class FireMageSettings : Settings
    {
        public static readonly FireMageSettings Instance = new FireMageSettings();

        public static string path_name = Path.Combine(Styx.Common.Utilities.AssemblyDirectory, string.Format(@"toNyxRAID_Settings/FireMage/FireMage-Settings-{0}.xml", StyxWoW.Me.Name));

        public FireMageSettings()
            : base(Path.Combine(Styx.Common.Utilities.AssemblyDirectory, string.Format(@"toNyxRAID_Settings/FireMage/FireMage-Settings-{0}.xml", StyxWoW.Me.Name)))
        {
        }

        public enum Targeting
        {
            AUTO = 0,
            DISABLED = 1
        }

        #region AOESettings

        [Setting]
        [DefaultValue(false)]
        public bool EnableAOE { get; set; }

        [Setting]
        [DefaultValue(5)]
        public int MinimumEnemiesAOE { get; set; }

        [Setting]
        [DefaultValue(true)]
        public bool UseFlameStrike { get; set; }

        #endregion

        #region DefensiveStuff

        [Setting]
        [DefaultValue(false)]
        public bool UseIceBarrier { get; set; }

        [Setting]
        [DefaultValue(false)]
        public bool UseIceBlock { get; set; }

        [Setting]
        [DefaultValue(15)]
        public int IceBlockHP { get; set; }

        [Setting]
        [DefaultValue(false)]
        public bool UseHealthStone { get; set; }

        [Setting]
        [DefaultValue(20)]
        public int HealthStoneHP { get; set; }

        #endregion

        #region UtilityStuff

        [Setting]
        [DefaultValue(false)]
        public bool ConjureFood { get; set; }

        [Setting]
        [DefaultValue(false)]
        public bool UseManaGem { get; set; }

        [Setting]
        [DefaultValue(60)]
        public int ManaGemMP { get; set; }

        [Setting]
        [DefaultValue(false)]
        public bool FaceTarget { get; set; }

        [Setting]
        [DefaultValue(false)]
        public bool UsePolymorphOnFocus { get; set; }

        [Setting]
        [DefaultValue(false)]
        public bool DisablePolymorphOnBosses { get; set; }

        [Setting]
        [DefaultValue(false)]
        public bool UseDecurse { get; set; }

        #endregion

        #region TALENTS

        [Setting]
        [DefaultValue(false)]
        public bool UseEvocation { get; set; }

        [Setting]
        [DefaultValue(true)]
        public bool KeepEvocationBuff { get; set; }

        [Setting]
        [DefaultValue(false)]
        public bool EvocBelowThreshold { get; set; }

        [Setting]
        [DefaultValue(50)]
        public int EvocThresholdMP { get; set; }

        [Setting]
        [DefaultValue(false)]
        public bool UseRoP { get; set; }

        #endregion

        #region HotkeyStuff

        [Setting]
        [DefaultValue(false)]
        public bool EnableHotKeys { get; set; }

        [Setting]
        [DefaultValue("None")]
        public string HotKeyModifier { get; set; }

        [Setting]
        [DefaultValue("None")]
        public string AoEHotKey { get; set; }

        #endregion

    }
}

